1. Field of Invention
The present invention relates to an apparatus and method for controlling execute-in-place (hereinafter, referred to as “XIP”) in a serial flash memory and a flash memory chip using the same, and more particularly, to an apparatus and method for controlling XIP in a serial flash memory and a flash memory chip using the same, wherein required data are retrieved or executed by accessing the serial flash memory through a hardware controller with a predetermined amount of storage capacity.
2. Description of the Related Art
In general, a flash memory is a writable memory that has non-volatility allowing recorded contents to be preserved even if power is not supplied thereto, like a ROM (Read Only Memory). The flash memory is largely classified into a parallel flash memory (hereinafter, referred to as “parallel flash”) in which cells are arranged in parallel between bit lines and a ground line, and a serial flash memory (hereinafter, referred to as “serial flash”) in which the cells are arranged in series therebetween, according to the fabrication method of the flash memory.
The parallel flash typically includes an EEPROM (Electrically Erasable Programmable Read Only Memory), a NOR type flash, and a DINOR (Divided Bit-line NOR) type flash that is a variant of the NOR type flash. The parallel flash is a device that allows addresses to be accessed based on byte unit in such a manner that read and write operations can be performed with respect to an arbitrary address irrespective of the order of the cells (random access).
However, since the parallel flash requires contact electrodes of the bit lines for the respective cells, there is a disadvantage in that the area of each cell increases as compared with the serial flash.
The serial flash typically includes a NAND and an AND. The serial flash is a block device that allows addresses to be accessed based on block unit in such a manner that a relevant block is first selected and respective cells connected in series to one another are then read.
A block in the serial flash means a unit capable of being deleted with one delete operation, and a page means a data size capable of being read or written during read/write operations.
Since such a serial flash has advantages of higher write speed, relatively lower cost, and facilitation of increase in its capacity as compared with the parallel flash, it has been widely used for storing large volumes of data. However, since it does not allow access based on byte unit, it cannot provide the XIP function by which recorded data are directly executed without transferring them to a main memory.
Therefore, the serial flash is generally used as an auxiliary data storage device, and boot codes for system booting are stored in a ROM or the serial flash is divided to manage the boot codes and data.
Alternatively, the serial flash is generally used as an auxiliary data storage device, and the boot codes for system booting are stored in a XIP-enabled NOR flash memory, or a ROM.
FIG. 1a shows a system booting process using the conventional NOR flash memory, and FIG. 1b shows a system booting process using the serial flash.
As shown in FIG. 1a, since access based on byte unit can be performed in the NOR flash memory, the system booting is performed in such a manner that a main control unit of a system directly reads operating system (OS) boot codes including OS images and data for system booting from the NOR flash memory.
As shown in FIG. 1b, since the access based on byte unit cannot be performed in the serial flash memory contrary to the NOR flash memory or ROM, the data for system booting are read from a boot loader of a boot ROM (1); and an entire page to which the OS boot codes including the OS images required for the system booting belong is read from the serial flash and then copied to the main memory, and the OS images are then read and transmitted to the main control unit (2).
That is, in order to provide the OS images for system booting that are required by the main control unit, the entire page to which the OS boot codes belong is read from the serial flash and written in the main memory, and only the OS images are read from the main memory and transmitted to the main control unit. Thus, the main control unit can perform the system booting (OS loading) (3).
In such a way, since the serial flash does not support the XIP function contrary to the NOR flash memory, which is the parallel flash, or the ROM, in order to execute the OS boot codes required for system booting, the OS boot codes should be transferred to the main memory to be executed therein. Thus, there are problems in that execution time is delayed and the available amount of storage capacity in the main memory is reduced due to the boot codes transferred to the main memory.
In particular, since the size of the operating system recently tends to be larger due to the variety of application programs and additional functions (e.g., 16 to 32 MB in case of WinCE), there is a problem in that the efficiency of memory is deteriorated since the amount of storage capacity occupied by the boot codes read from the serial flash becomes larger in the main memory.
Therefore, there is a current need for a serial flash which can store programs by using a larger amount of memory capacity at a lower or same cost and support the XIP function so as to directly execute data on the flash memory, if necessary.